Skip to main content

Oggetto: compito

Simbolo: _cds_icon_task_editor.png

L'operazione viene configurata nell'oggetto. È possibile configurare la priorità, il tipo e il comportamento temporale e un watchdog. Puoi anche aggiungere PROGRAM chiamate.

L'oggetto si trova nell'albero dei dispositivi sotto il Configurazione dell'attività.

Scheda: Configurazione

Oggetto: _cds_icon_task_editor.png Compito

Priorità

Valori possibili: 0..31, dove 0 è la priorità più alta

Gruppo di attività

Assegnato gruppi di attività che possono essere assegnati a specifici core del processore in multicore

Esempio: Compiti IEC

Nota: il gruppo di attività viene visualizzato tra parentesi dopo l'attività nella struttura dei dispositivi.

Importante

Quando si utilizza un sistema di runtime in Linux, esistono dipendenze fisse tra gruppi di attività e priorità. Per ulteriori informazioni, vedere: Mappatura delle priorità delle attività su un sistema Linux

Tipo

Tipo: _cds_icon_task_periodic.png Ciclico

L'elaborazione dell'attività viene eseguita ciclicamente.

Campo di inserimento Intervallo

Necessario

Intervallo di tempo dopo il quale l'attività viene riavviata (tempo di ciclo dell'attività)

  • Come definizione temporale nel formato TIME#

    Esempio: t#200ms

  • Come un numero

    Esempio: 200

    Nota: il numero viene visualizzato automaticamente nel formato TIME# quando il campo di input è nuovamente a fuoco.

Nota: le deviazioni dell'attività dal tempo di ciclo dell'attività desiderato vengono visualizzate in fase di esecuzione come jitter periodici sul Scheda: Monitoraggio scheda.

Unità di tempo dell'intervallo

Se nel file viene specificato solo un numero e non una definizione di tempo Intervallo campo di immissione, quindi l'unità qui selezionata determina le dimensioni temporali.

Esempio: SM

Nota: un tempo di ciclo dell'attività in µs viene sempre visualizzato come numero.

Tipo: _cds_icon_task_event_internal.png Evento

L'elaborazione dell'attività viene avviata in base all'evento sul fronte di salita della variabile evento.

Campo di inserimento Evento

Variabile globale (tipo booleano)

L'attività inizia non appena il valore della variabile passa da 0 a 1.

Tipo: _cds_icon_task_event_external.png Esterno

L'elaborazione dell'attività viene avviata in base all'evento sul fronte di salita della variabile evento.

Casella di riepilogo Evento

Elenco con eventi dipendenti dal sistema di destinazione (tipo booleano)

Nota: il sistema di destinazione determina quali eventi sono supportati e offerti nella casella di riepilogo.

Suggerimento: da non confondere con gli eventi di sistema.

Intervallo

Definizione del tempo in TIME# formato o come numero con unità di tempo

Nota: disponibile solo quando l'evento richiede una definizione dell'ora

Tipo: Ruota libera

L'elaborazione dell'operazione si riavvia automaticamente in un ciclo continuo all'avvio del programma e dopo la fine di un'esecuzione dopo un determinato tempo di attesa

Importante: dopo aver completato un'esecuzione, viene atteso un certo periodo di tempo prima che l'attività venga nuovamente eseguita. La durata è una percentuale della durata dell'ultimo ciclo

Nota: non si definisce un tempo di ciclo.

Tipo: Stato

L'elaborazione dell'attività viene avviata in base allo stato delle variabili evento

Campo di inserimento Evento

Variabile globale (tipo booleano)

Quando la variabile ha lo stato TRUE, l'attività inizia a ruota libera. L'operazione viene eseguita finché la variabile non ottiene FALSE.

Nota: la variabile viene in genere reimpostata nel task stesso. Contrariamente al task evento, nessun evento può essere perso in questo modo. Quando si verifica un evento, lo scheduler deve salvare un vecchio valore, e questo può cambiare più spesso di quanto venga controllato. Quindi, se una variabile evento cambia in TRUE solo per un breve periodo, lo scheduler potrebbe non rilevare questa modifica. Ciò può essere evitato con un'attività di stato. La variabile di stato è impostata su TRUE da un altro task e reimpostato dal task di stato. Ciò assicura che il task venga eseguito una volta ogni volta che passa a TRUE.

Importante

Per i bus di campo, è necessaria una matrice a ciclo fisso per assicurare un determinato comportamento. Pertanto, non è necessario utilizzare a  Ruota libera tipo per un'attività ciclabile in autobus.

Importante

Notare la seguente differenza tra i tipi di elaborazione Stato e Evento. Se l'evento dato cede TRUE, quindi la condizione iniziale di un'attività di tipo Stato è soddisfatto. Al contrario, l'inizio di un'attività di tipo Evento richiede uno switch dell'evento da FALSE a TRUE. Se la frequenza di campionamento dell'utilità di pianificazione è troppo bassa, il fronte di salita dell'evento può passare inosservato.

Importante

Quando si imposta il tempo di ciclo dell'attività, è necessario identificare quale sistema bus è attualmente in uso. Ad esempio, il tempo di ciclo dell'attività in un sistema bus CAN deve corrispondere alla velocità di trasmissione attualmente impostata e al numero di frame utilizzati nel bus. Inoltre, i tempi impostati per heartbeat, node guarding e sync devono sempre essere un multiplo del tempo del ciclo dell'attività. In caso contrario, i frame CAN possono essere persi.

Per ulteriori informazioni, vedere: Scheda: Monitoraggio

Watchdog

Definisce il monitoraggio del tempo per un'attività. Se il sistema di destinazione supporta una configurazione watchdog avanzata, le seguenti impostazioni potrebbero essere predefinite nella descrizione del dispositivo.

  • Limite superiore e inferiore

  • Tempo di controllo predefinito

  • Tempo specificato in percentuale

Le impostazioni di watchdog predefinite dipendono dal dispositivo.

Attivare

_cas_icon_option_activated.png: Il watchdog è attivo.

Se l'attività supera il tempo attualmente impostato dal watchdog, viene interrotta con uno stato di errore (eccezione). Vengono interrotte anche l'applicazione nel cui task si è verificato l'errore e le relative applicazioni secondarie. In questo modo, vengono interrotte anche tutte le attività delle applicazioni interessate. Quindi quella attualmente definita Sensibilità viene anche preso in considerazione.

Se si attiva l'opzione Aggiorna gli I/O nel Impostazioni PLC del PLC, quindi CODESYS ripristina le uscite ai valori predefiniti definiti.

. Possibili casi:
  • Timeout multipli consecutivi:

    Sensibilità: 0, 1 – eccezione nel ciclo 1

    Sensibilità: 2 – eccezione nel ciclo 2

    Sensibilità: n – eccezione nel ciclo n

  • Timeout singolo: Eccezione se il tempo di ciclo del ciclo corrente è maggiore di (tempo * sensibilità). Esempio: Tempo=t#10ms, Sensibilità=5 (ovvero, eccezione non appena l'attività una tantum dura più di 50 ms)

Tempo (per es. t#200ms)

Tempo di guardia

Definisce (insieme a Sensibilità) il watchdog per un compito; descrizione come per Abilitare.

A seconda del sistema di destinazione, l'intervallo di tempo di monitoraggio viene fornito come percentuale dell'intervallo di attività, se possibile. In questo caso, la casella di riepilogo dell'unità è disabilitata e viene visualizzata %.

Sensibilità

Numero

Definisce (insieme al watchdog) il watchdog per un task; descrizione come per Abilitare.

Suggerimento

Utilizzo delle funzioni della libreria CmpIecTask.library, è possibile disattivare un watchdog per cicli PLC specifici. Ciò è utile per i cicli che richiedono più tempo a causa dell'inizializzazione.

Esempio 539. Esempio

Disattivazione/riattivazione del watchdog:

VAR
hIecTask : RTS_IEC_HANDLE;
END_VAR

hIecTask := IecTaskGetCurrent(0);
IecTaskDisableWatchdog(hIecTask); //Watchdog disabled
...
IecTaskEnableWatchdog(hIecTask); //Watchdog enabled

Il watchdog è disattivato prima dell'inizializzazione con IecTaskDisableWatchDog per il resto del ciclo e si riattiva automaticamente al ciclo successivo.

Il watchdog può essere riattivato dopo l'inizializzazione con IecTaskEnableWatchDog. Il watchdog viene quindi riattivato già per il resto del ciclo (la finestra temporale del watchdog riparte dall'inizio).



Inizializzazioni di blocchi funzionali che avvengono all'interno di FB_Init il metodo non è influenzato da questo. Ma c'era il limite di < 30 secondi a causa del timeout di comunicazione. Questo limite di tempo non esiste più dalla V3.5 SP18 perché i servizi online vengono eseguiti in modo asincrono .

Suggerimento

Il normale watchdog di un task IEC viene attivato quando il tempo di esecuzione del task IEC supera il tempo di watchdog.

Il watchdog "Ciclo omesso" viene attivato quando il task non si avvia affatto. Questo è il caso in cui l'attività non esegue alcun ciclo entro il massimo di <Volta * Sensibilità> o <2 * Intervallo>. La causa potrebbe essere l'affollamento di altre attività o un errore nell'utilità di pianificazione, che non abilita più l'attività.

Chiamate al programma

POU (POU oggetto con tipo PROGRAM) che vengono richiamati dal compito in successione

L'ordine in cui vengono chiamate le POU corrisponde all'ordine di chiamata configurato qui dall'alto verso il basso.

_cds_icon_task_add.png Aggiungi chiamata

Apre l'Input Assistant. Seleziona un PROGRAM POU. Quando si fa clic OK per uscire da Input Assistant, questa viene aggiunta all'elenco seguente come nuova chiamata.

_cds_icon_task_delete.png Rimuovi chiamata

Rimuove la chiamata

_cds_icon_task_edit.pngModificabia chiamata

Apre l'Input Assistant per la chiamata selezionata. Selezionane un altro PROGRAM POU. La chiamata viene modificata quando si fa clic OK per uscire dall'Input Assistant.

_cds_icon_task_moveup.png Sposta su

_cds_icon_task_movedown.png Sposta giù

Sposta la posizione della chiamata verso l'alto o verso il basso nell'elenco. L'ordine delle chiamate cambia di conseguenza in fase di esecuzione.

_cds_icon_task_openpou.png Apri POU

Apre l'editor POU con la dichiarazione e l'implementazione del PROGRAM POU